﻿using Abp.Application.Services.Dto;
using Mt.Site.Application.CustomConfigurations.Dto;
using Mt.Site.Application.Dto;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Mt.Site.Application.CustomConfigurations
{
    public interface ICustomConfigAppService : IBackEndAppService
    {
        Task CreateAsync(CreateCustomConfigDto input);

        Task UpdateAsync(UpdateCustomConfigDto input);

        Task DeleteAsync(EntityDto<Guid> input);

        Task DeleteListAsync(List<Guid> input);

        Task<CustomConfigDto> GetAsync(EntityDto<Guid> input);

        Task SetStatusAsync(SetStatusInput input);

        Task<PagedResultDto<PagedCustomConfigDto>> GetPagedCustomConfigs(PagedCustomConfigInput input);

        Task<string> GetConfigAsync(GetConfigInput input);

        Task UpdateOrCreateConfigFileAsync(ConfigFileDto input);

        Task<string> GetConfigFileContentAsync();

        Task<string> GeneralConfigFileAsync();

        Task<PagedResultDto<ConfigDataItem>> GetPagedConfigDatasByTypeAsync(GetPagedConfigDatasInput input);
    }
}
